home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / brklyprl.lha / Emulator / Tests / Passed / test32.pl < prev    next >
Encoding:
Text File  |  1989-04-14  |  563 b   |  20 lines

  1.  
  2. /* Copyright (C) 1988, 1989 Herve' Touati, Aquarius Project, UC Berkeley */
  3.  
  4. main :- unify([a(X,Y)], [Z,T]).
  5.  
  6. unify(Left, Left) :- !.                % Try standard unify first
  7. unify(Left, g) :-                % else, is it special case
  8.     atomic(Left), !,            
  9.     not(Left=[]).
  10. unify(g, Right) :-                
  11.     atomic(Right), !,
  12.     not(Right=[]).
  13. unify([LeftHead|LeftTail], [RightHead|RightTail]) :-    % or list
  14.     !, unify(LeftHead, RightHead),
  15.     unify(LeftTail, RightTail).
  16. unify(Left, Right) :-                    % or structure
  17.     Left =.. [Functor|LeftArgs],
  18.     Right =.. [Functor|RightArgs],
  19.     unify(LeftArgs, RightArgs).
  20.